package org.wu.acw.server.application.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyDTO;

import java.util.List;

/**
 * describe 数据库表字段（即将弃用）
 *
 * @author Jia wei Wu
 * @date 2023/11/04 06:27 晚上
 * @see DefaultDDDLazyDTO
 **/
@Data
@Accessors(chain = true)
@Schema(title = "acw_table_column_command_dto", description = "数据库表字段（即将弃用）")
public class AcwTableCommandColumnDTO {

    private List<AcwTableColumnDTO> acwTableColumnDTOList;

    private List<AcwTableColumnIndexDTO> acwTableColumnIndexDTOList;



    /**
     * 字段索引
     */
    @Data
    public static
    class AcwTableColumnIndexDTO {

        /**
         * tableCatalog
         */
        private String tableCatalog;
        /**
         * 数据库schema
         */
        private String tableSchema;
        /**
         * 表名
         */
        private String tableName;
        /**
         * 不是唯一的
         */
        private boolean nonUnique;
        /**
         * indexSchema
         */
        private String indexSchema;
        /**
         * 索引名称
         */
        private String indexName;

        /**
         * 序列索引
         */
        private String seqInIndex;
        /**
         * 行字段名称
         */
        private List<String> columnNameList;
        /**
         * 整理
         */
        private String collation;
        /**
         * 基数
         */
        private String cardinality;
        /**
         * 子部分
         */
        private String subPart;
        /**
         * 包装好的
         */
        private String packed;
        /**
         * yes 允许为空，no 不允许为空
         */
        private String nullable;
        /**
         * 索引类型 如 BTREE、HASH
         */
        private String indexType;
        /**
         * 描述注解
         */
        private String comment;
        /**
         * 索引描述
         */
        private String indexComment;
        /**
         * yes 可见的、no 不可见的
         */
        private Boolean isVisible;
    }
}